<?xml version="1.0"?>
<!-- 
   - The contents of this file are subject to the Mozilla Public
   - License Version 1.1 (the "License"); you may not use this file
   - except in compliance with the License. You may obtain a copy of
   - the License at http://www.mozilla.org/MPL/
   - 
   - Software distributed under the License is distributed on an "AS
   - IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
   - implied. See the License for the specific language governing
   - rights and limitations under the License.
   - 
   - The Original Code is Mozilla Test Cases.
   - 
   - The Initial Developer of the Original Code is Netscape Communications
   - Corp.  Portions created by Netscape Communications Corp. are 
   - Copyright (C) 2001 Netscape Communications Corp.  All
   - Rights Reserved.
   - 
   - Contributor(s): 
  -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>GET test</title>
<style type="text/css">
.box {
  display: box;
  border: 1px solid black;
  margin-bottom: 0.5em;
}
.boxheader {
  font-weight: bold;
  color: maroon;
}
pre {
  margin-left: 2em;
}
</style>
<script type="text/javascript">
//<![CDATA[
var p = new XMLHttpRequest();

if (window.testRunner) {
  testRunner.dumpAsText();
  testRunner.waitUntilDone();
}

// Some properties do not have stable/guaranteed values;
// emit default values for these.
var propertiesWithDefaultValues = {loaded: 0, total: 0, position: 0, totalSize: 0};

function myfunc(e)
{
  document.getElementById("id1").firstChild.nodeValue = p.responseText;
  if (p.responseXML) {
    var s = new XMLSerializer();
    var d = p.responseXML;
    var str = s.serializeToString(d);
    document.getElementById("id2").firstChild.nodeValue = str;
  }
  // Delete carriage returns (since the golden file we compare with only has
  // newlines) and mask the last modified date, which can vary.
  document.getElementById("id3").firstChild.nodeValue = p.getAllResponseHeaders().replace(/\r/g, '').replace(/(?<=^last-modified: ).*$/m, '(date)');
  document.getElementById("id4").firstChild.nodeValue = p.status;
  document.getElementById("id5").firstChild.nodeValue = p.statusText;
  document.getElementById("id6").firstChild.nodeValue = p.readyState;
  var propNames = new Array;
  for (prop in e) {
    if (prop != "timeStamp") {
        propNames.push(prop);
    }
  }
  propNames.sort();
  var eventProperties = "";
  for (i in propNames) {
        var prop = propNames[i];
        var value = (prop in propertiesWithDefaultValues) ? propertiesWithDefaultValues[prop] : e[prop];
        eventProperties += prop + " : '" + value + "'\n";
  }

  document.getElementById("id7").firstChild.nodeValue =
    "Event object: " + e + "\n" +
    "Event properties:\n" + eventProperties;

  if (window.testRunner)
    testRunner.notifyDone();
}

p.onload = myfunc;
p.open("GET", "resources/xmlhttprequest-get-data.xml");

function mysend()
{
  p.send(null);
}
//]]>
</script>
</head>
<body onload="mysend();">
<h1>GET test</h1>

<div class="box"><span class="boxheader">responseText</span>
<pre id="id1">@@No result@@</pre>
</div>
<div class="box"><span class="boxheader">responseXML serialized</span>
<pre id="id2">@@No result@@</pre>
</div>
<div class="box"><span class="boxheader">getAllResponseHeaders()</span>
<pre id="id3">@@No result@@</pre>
</div>
<div class="box"><span class="boxheader">status</span>
<pre id="id4">@@No result@@</pre>
</div>
<div class="box"><span class="boxheader">statusText</span>
<pre id="id5">@@No result@@</pre>
</div>
<div class="box"><span class="boxheader">readyState</span>
<pre id="id6">@@No result@@</pre>
</div>
<div class="box"><span class="boxheader">Event information</span>
<pre id="id7">@@No result@@</pre>
</div>

</body>
</html>
